<?php
/**
 * 商品列表页API
 *
 * @link: https://www.haodanku.com/api/detail/show/1.html
 *
 * User: Ken.Zhang <kenphp@yeah.net>
 * Date: 2019/9/22
 * Time: 21:01
 */
namespace OpenSDK\HaoDanKu\Requests;

use OpenSDK\HaoDanKu\Interfaces\Request;

class ItemListRequest implements Request
{

    /**
     * 接口
     *
     * @var string
     */
    public $method = '/itemlist';

    /**
     * 请求方式
     *
     * @var string
     */
    public $requestType = 'get';

    private $nav;       // 默认全部商品（1实时跑单商品，2爆单榜商品，3全部商品，4纯视频单，5聚淘专区）

    private $cid;       // 商品类目：0全部，1女装，2男装，3内衣，4美妆，5配饰，6鞋品，7箱包，8儿童，9母婴，10居家，
                        // 11美食，12数码，13家电，14其他，15车品，16文体，17宠物
                        // （支持多类目筛选，如1,2获取类目为女装、男装的商品，逗号仅限英文逗号）

    private $back;      // 每页返回条数（请在1,2,10,20,50,100,120,200,500,1000中选择一个数值返回）

    private $min_id;    // 分页，用于实现类似分页抓取效果，来源于上次获取后的数据的min_id值，默认开始请求值为1
                        // （该方案比单纯123分页的优势在于：数据更新的情况下保证不会重复也无需关注和计算页数）

    private $sort;      // 0.综合（最新）1.券后价(低到高) 2.券后价（高到低）3.券面额（高到低）4.月销量（高到低）
                        // 5.佣金比例（高到低）6.券面额（低到高）7.月销量（低到高）8.佣金比例（低到高）
                        // 9.全天销量（高到低）10全天销量（低到高）11.近2小时销量（高到低）12.近2小时销量（低到高）
                        // 13.优惠券领取量（高到低）注意：该排序仅对nav=345有效12无效

    private $price_min; // 券后价筛选，筛选大于等于所设置的券后价的商品

    private $price_max; // 券后价筛选，筛选小于等于所设置的券后价的商品

    private $sale_min;  // 销量筛选，筛选大于等于所设置的销量的商品

    private $sale_max;  // 销量筛选，筛选小于等于所设置的销量的商品

    private $coupon_min;// 券金额筛选，筛选大于等于所设置的券金额的商品

    private $coupon_max;// 	券金额筛选，筛选小于等于所设置的券金额的商品

    private $tkrates_min;   // 佣金比例筛选，筛选大于等于所设置的佣金比例的商品

    private $tkrates_max;   // 佣金比例筛选，筛选小于所设置的佣金比例的商品

    private $tkmoney_min;   // 佣金筛选，筛选大于等于所设置的佣金的商品

    private $item_type; // 是否只获取营销返利商品

    private $apiParams = [];


    public function setNav($val)
    {
        $this->nav = (int)$val;
        $this->apiParams['nav'] = (int)$val;
    }

    public function setCid($val)
    {
        $this->cid = (int)$val;
        $this->apiParams['cid'] = (int)$val;
    }

    public function setBack($val)
    {
        $this->back = (int)$val;
        $this->apiParams['back'] = (int)$val;
    }

    public function setMinId($val)
    {
        $this->min_id = (int)$val;
        $this->apiParams['min_id'] = (int)$val;
    }

    public function setSort($val)
    {
        $this->sort = (int)$val;
        $this->apiParams['sort'] = (int)$val;
    }

    public function setPriceMin($val)
    {
        $this->price_min = (int)$val;
        $this->apiParams['price_min'] = (int)$val;
    }

    public function setPriceMax($val)
    {
        $this->price_max = (int)$val;
        $this->apiParams['price_max'] = (int)$val;
    }

    public function setSaleMin($val)
    {
        $this->sale_min = (int)$val;
        $this->apiParams['sale_min'] = (int)$val;
    }

    public function setSaleMax($val)
    {
        $this->sale_max = (int)$val;
        $this->apiParams['sale_max'] = (int)$val;
    }

    public function setCouponMin($val)
    {
        $this->coupon_min = (int)$val;
        $this->apiParams['coupon_min'] = (int)$val;
    }

    public function setCouponMax($val)
    {
        $this->coupon_max = (int)$val;
        $this->apiParams['coupon_max'] = (int)$val;
    }

    public function setTkratesMin($val)
    {
        $this->tkrates_min = (int)$val;
        $this->apiParams['tkrates_min'] = (int)$val;
    }

    public function setTkratesMax($val)
    {
        $this->tkrates_max = (int)$val;
        $this->apiParams['tkrates_max'] = (int)$val;
    }

    public function setTkmoneyMin($val)
    {
        $this->tkmoney_min = (int)$val;
        $this->apiParams['tkmoney_min'] = (int)$val;
    }

    public function setItemType($val)
    {
        $this->item_type = (int)$val;
        $this->apiParams['item_type'] = (int)$val;
    }

    /**
     * 获取参数
     */
    public function getParams()
    {
        return $this->apiParams;
    }

}